#ifndef CZENCAMERA_H
#define CZENCAMERA_H

#include "ZenObject.h"

class CZenCamera : public CZenObject
{
public:
	CZenCamera();
	~CZenCamera();

	void SetUp(float x, float y, float z);
	void GetUp(float &x, float &y, float &z);

	void SetRight(float x, float y, float z);
	void GetRight(float &x, float &y, float &z);

	void SetVelocity(float x, float y, float z);
	void GetVelocity(float &x, float &y, float &z);

	void SetPosition(float x, float y, float z);
	void GetPosition(float &x, float &y, float &z);

	void SetLookPoint(float x, float y, float z);
	void GetLookPoint(float &x, float &y, float &z);

	void SetLookVector(float x, float y, float z);
	void GetLookVector(float &x, float &y, float &z);
	
	void Update();
	void Move(float x, float y, float z);
	
	void SetRoll(float Roll);
	void SetYaw(float Yaw);
	void SetPitch(float Pitch);

	void GetRoll(float &Roll);
	void GetYaw(float &Yaw);
	void GetPitch(float &Pitch);

	void Reset();

	HRESULT Render();

	int GetSize();

protected:
	CZenEngine  zen;
	float		m_Roll;
	float		m_Yaw;
	float		m_Pitch;
	bool		m_bLookPoint;

	D3DXVECTOR3	m_Position;
	D3DXVECTOR3	m_LookVector;
	D3DXVECTOR3	m_LookPoint;
	D3DXVECTOR3	m_Up;
	D3DXVECTOR3	m_Right;
	D3DXVECTOR3	m_Velocity;
};

#endif
